package com.ccb;


import com.tencentcloudapi.common.Credential;
import com.tencentcloudapi.common.exception.TencentCloudSDKException;
import com.tencentcloudapi.common.profile.ClientProfile;
import com.tencentcloudapi.common.profile.HttpProfile;
import com.tencentcloudapi.common.profile.Language;
import com.tencentcloudapi.cvm.v20170312.CvmClient;
import com.tencentcloudapi.cvm.v20170312.models.*;

public class Application {
	
	public static void main(String[] args) {
		/*try{
			// 实例化一个认证对象，入参需要传入腾讯云账户 secretId、secretKey
			Credential cred = new Credential("AKIDD8IcblkMjluh59IPZ3DnKELOwe04oCpq", "vRYMr3OP6nv92ybspSkiLedHaYHhIFcf");

			// 实例化要请求产品（以 cvm 为例）的 client 对象
			CvmClient client = new CvmClient(cred, "ap-guangzhou");

			// 实例化一个请求对象
			DescribeZonesRequest req = new DescribeZonesRequest();

			// 通过 client 对象调用想要访问的接口，需要传入请求对象
			DescribeZonesResponse resp = client.DescribeZones(req);

			// 输出 json 格式的字符串回包
			System.out.println(DescribeZonesRequest.toJsonString(resp));
		} catch (TencentCloudSDKException e) {
			e.printStackTrace();
			System.out.println(e.toString());
		}*/
		try {
			// 实例化一个认证对象，入参需要传入腾讯云账户 secretId、secretKey，此处还需注意密钥对的保密
			Credential cred = new Credential("AKIDD8IcblkMjluh59IPZ3DnKELOwe04oCpq", "vRYMr3OP6nv92ybspSkiLedHaYHhIFcf");

			// 实例化一个 http 选项，可选的，没有特殊需求可以跳过
			HttpProfile httpProfile = new HttpProfile();
			//  从3.1.16版本开始, 单独设置 HTTP 代理
			// httpProfile.setProxyHost("真实代理ip");
			// httpProfile.setProxyPort(真实代理端口);
			httpProfile.setReqMethod("GET"); // get 请求(默认为post请求)
			httpProfile.setProtocol("https://");  // 在外网互通的网络环境下支持 http 协议（默认是 https 协议），请选择(https:// or http://)
			httpProfile.setConnTimeout(30); // 请求连接超时时间，单位为秒（默认60秒）
			httpProfile.setWriteTimeout(30);  // 设置写入超时时间，单位为秒（默认0秒）
			httpProfile.setReadTimeout(30);  // 设置读取超时时间，单位为秒（默认0秒）
			httpProfile.setEndpoint("cvm.ap-shanghai.tencentcloudapi.com"); // 指定接入地域域名（默认就近接入）

			// 实例化一个 client 选项，可选的，没有特殊需求可以跳过
			ClientProfile clientProfile = new ClientProfile();
			clientProfile.setSignMethod("HmacSHA256"); // 指定签名算法（默认为 HmacSHA256）
			// 自3.1.80版本开始，SDK 支持打印日志。
			clientProfile.setHttpProfile(httpProfile);
			clientProfile.setDebug(true);
			// 从3.1.16版本开始，支持设置公共参数 Language, 默认不传，选择（ZH_CN or EN_US）
			//clientProfile.setLanguage(Language.EN_US);
			// 实例化要请求产品（以 cvm 为例）的 client 对象，clientProfile 是可选的
			CvmClient client = new CvmClient(cred, "ap-shanghai", clientProfile);

			// 实例化一个 cvm 实例信息查询请求对象，每个接口都会对应一个 request 对象。
			DescribeInstancesRequest req = new DescribeInstancesRequest();

			// 填充请求参数，这里 request 对象的成员变量即对应接口的入参
			// 您可以通过官网接口文档或跳转到 request 对象的定义处查看请求参数的定义
			Filter respFilter = new Filter(); // 创建 Filter 对象, 以 zone 的维度来查询 cvm 实例
			respFilter.setName("zone");
			respFilter.setValues(new String[] { "ap-shanghai-1", "ap-shanghai-2" });
			req.setFilters(new Filter[] { respFilter }); // Filters 是成员为Filter对象的列表

			// 通过 client 对象调用 DescribeInstances 方法发起请求。注意请求方法名与请求对象是对应的
			// 返回的 resp 是一个 DescribeInstancesResponse 类的实例，与请求对象对应
			DescribeInstancesResponse resp = client.DescribeInstances(req);

			// 输出 json 格式的字符串回包
			System.out.println(DescribeInstancesResponse.toJsonString(resp));

			// 也可以取出单个值。
			// 您可以通过官网接口文档或跳转到 response 对象的定义处查看返回字段的定义
			System.out.println(resp.getTotalCount());

			System.out.println(345);
		} catch (TencentCloudSDKException e) {
			System.out.println(e.toString());
		}
	}


}	

